//#include <climits>
//#include <iostream>
//#include <vector>
//
//using namespace std;
//
//int main()
//{
//    int n = 0;
//    cin >> n;
//    vector<int> nums(n);
//    for (int i = 0; i < n; ++i)
//        cin >> nums[i];
//    int k = 0, d = 0;
//    cin >> k >> d;
//
//    vector<vector<long long>> dpMax(k, vector<long long>(n, 1));
//    vector<vector<long long>> dpMin(k, vector<long long>(n, 1));
//    long long ans = LLONG_MIN;
//    for (int i = 0; i < n; ++i)
//    {
//        dpMax[0][i] = dpMin[0][i] = nums[i];
//        ans = max(ans, dpMax[0][i]);
//    }
//
//    for (int i = 1; i < k; ++i)
//    {
//        for (int j = i; j < n; ++j)
//        {
//            for (int m = j - 1; m >= 0 && j - m <= d; --m)
//            {
//                dpMax[i][j] = max(dpMax[i][j], max(dpMax[i - 1][m] * nums[j], dpMin[i - 1][m] * nums[j]));
//                dpMin[i][j] = min(dpMin[i][j], min(dpMax[i - 1][m] * nums[j], dpMin[i - 1][m] * nums[j]));
//            }
//            ans = max(ans, dpMax[i][j]);
//        }
//    }
//
//    cout << ans << endl;
//    return 0;
//}


#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>

using namespace std;

int main()
{
    int n = 0;
    while (cin >> n)
    {
        vector<pair<int, int>> nums;
        for (int i = 0; i < n; ++i)
        {
            int index = 0, high = 0, weight = 0;
            cin >> index >> high >> weight;
            nums.push_back(make_pair(high, weight));
        }
        sort(nums.begin(), nums.end(), [](const pair<int, int>& a, const pair<int, int>& b)
            {
                return a.first == b.first ? a.second > b.second : a.first < b.first;
            });

        vector<int> dp(n, 1);
        int ans = 0;
        for (int i = 0; i < n; ++i)
        {
            for (int j = 0; j < i; ++j)
            {
                if (nums[i].second >= nums[j].second)
                {
                    dp[i] = max(dp[i], dp[j] + 1);
                }
            }
            ans = max(ans, dp[i]);
        }

        cout << ans << endl;
    }

    return 0;
}